package sort;

/**
 * 选择排序
 * 从无序序列中选择一个最值，放到有序序列的最后
 *
 */
public class SelectSort implements ISort{
	private int disorderStart = 0;//无序部分起始位置
	
	public void sort(int[] arr) {
		int n = arr.length;
		for(int i=0;i<n-1;i++) {
			int min = arr[disorderStart];
			int minIdx = disorderStart;
			for(int j=disorderStart+1;j<n;j++) {
				if(min>arr[j]) {
					min = arr[j];
					minIdx = j;
				}
			}
			int tmp = arr[disorderStart];
			arr[disorderStart] = arr[minIdx];
			arr[minIdx] = tmp;
			disorderStart++;
		}
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SelectSort selectSort = new SelectSort();
		int arr[] = {8,4,7,9,6,3,1,2,5};
		selectSort.sort(arr);
		ISort.printArr(arr);
	}
}
